package org.dromara.hm.domain.vo.saleOrder;

import java.math.BigDecimal;
import org.dromara.common.translation.annotation.Translation;
import java.util.Date;

import org.dromara.common.translation.constant.TransConstant;
import org.dromara.hm.domain.HmSaleOrderPickUp;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 销售订单提货、回款视图对象 hm_sale_order_pick_up
 *
 * @author Hzy
 * @date 2025-01-06
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = HmSaleOrderPickUp.class)
public class HmSaleOrderPickUpVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 提货记录id
     */
    @ExcelProperty(value = "记录id")
    private Long pickUpId;


    /**
     * 销售订单
     */
    @ExcelProperty(value = "销售订单")
    private Long saleOrderId;

    /**
     * 事件类型(提货/回款)
     */
    @ExcelProperty(value = "类型")
    private String pickUpType;

    /**
     * 商品类型
     */
    private String productType;


    /**
     * 提货数量or回款金额
     */
    @ExcelProperty(value = " 提货数量or回款金额")
    private BigDecimal pickUpNum;

    /**
     * 处理时间
     */
    @ExcelProperty(value = "处理时间")
    private Date pickUpTime;

    /**
     * 证明材料
     */
    @ExcelProperty(value = "证明材料")
    private String file;

    /**
     * 证明材料Url
     */
    private String fileUrl;


    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    private String status;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 结束时间
     */
    private String endTime;

    /**
     * 销售单产品ID
     */
    private Long saleProductId;

    /**
     * 退回数量/金额
     */
    private BigDecimal returnNum;
    /**
     * 关联退款/退货id
     */
    private String relatedRefundId;
    /**
     * 是否关联退款退货单
     */
    private Boolean isRefundRelated;

    /**
     * 销售单产品名称
     */
    @Translation(type= TransConstant.PRODUCT_ID_TO_NAME,mapper = "saleProductId")
    private String saleProductName;
    /**
     * 客户名称
     */
    private String customerId;
    @Translation(type= TransConstant.CUSTOMER_ID_TO_NAME,mapper = "customerId")
    private String customerName;

    /**
     * 回款方式
     */
    private String method;

    /**
     * 是否为补充提货
     */
    private Boolean isSupplementaryPickup;



}
